package com.enjoyor.soa.traffic.api.service.dubbo.redis;

import java.util.List;

import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

//@Service(protocol = { "dubbo" })
public interface DubboRedisSetService {
	/**
	 * 
	 * @Title: sadd
	 * @Description: 向集合添加一个或多个成员
	 * @param key
	 * @param members
	 * @return: void
	 */
	public ResultPojo sadd(String key,String[] members);
	/**
	 * 
	 * @Title: scard
	 * @Description: 获取集合的成员数
	 * @param key
	 * @return
	 * @return: int
	 */
	public ResultPojo scard(String key);
	/**
	 * 
	 * @Title: scard
	 * @Description: 获取集合的差集
	 * @param keys
	 * @return
	 * @return: Set
	 */
	public ResultPojo sdiff(String[] keys);
	/**
	 * 
	 * @Title: sinter
	 * @Description: 获取集合的交集
	 * @param keys
	 * @return
	 * @return: Set
	 */
	public ResultPojo sinter(String[] keys);
	/**
	 * 
	 * @Title: sismember
	 * @Description: 判断 member 元素是否是集合 key 的成员
	 * @param key
	 * @param member
	 * @return
	 * @return: String
	 */
	public ResultPojo sismember(String key,String member);
	/**
	 * 
	 * @Title: smembers
	 * @Description: 返回集合中的所有成员
	 * @param key
	 * @return
	 * @return: String
	 */
	public ResultPojo smembers(String key);
	/**
	 * 
	 * @Title: spop
	 * @Description: 移除并返回集合中的一个随机元素
	 * @param key
	 * @return
	 * @return: String
	 */
	public ResultPojo spop(String key);
	/**
	 * 
	 * @Title: srem
	 * @Description: 移除集合中一个或多个成员
	 * @param key
	 * @param members
	 * @return: void
	 */
	public ResultPojo srem(String key,String[] members);
	/**
	 * 
	 * @Title: sunion
	 * @Description: 移除集合中一个或多个成员
	 * @param keys
	 * @return
	 * @return: Set
	 */
	public ResultPojo sunion(String[] keys);
	/**
	 * 
	 * @Title: saddPipeline
	 * @Description: 批量插入成员，功能同sadd(String key,String[] members)
	 * @param key
	 * @param memberList
	 * @return: void
	 */
	public ResultPojo saddPipeline(String key,List<String> memberList);
}
